"""
java里面有private关键字，但是python里面没有
python里面如何定义 私有变量和私有方法？
    在变量或者方法名前面加两个下划线 __

    私有方法和属性不能被继承
    无法通过 对象.方法 使用私有的属性和方法
"""
class Master(object):
    def __init__(self):
        self.kongfu = ['古法做汤圆']
        self.key = '老板的钥匙'

    def make_cake(self):
        print(f"使用【{self.kongfu}】制作汤圆")

    # 父类的私有方法
    def __store(self):
        print("Master有一个私有商店")

    def store2(self):
        print("Master有一个商店")


class School():
    def __init__(self):
        self.kongfu = ['科技做汤圆']

    def make_cake(self):
        print(f"使用【{self.kongfu}】制作汤圆")

class Prentice(Master,School):
    def __init__(self):
        self.kongfu = ['秘方做汤圆']
        # 定义一个私有变量，私有变量不能通过 . 调用
        self.__money = 20000

    #私有方法不能通过 对象. 方法名使用
    def __info_print(self):
        print(f"做法:{self.kongfu}，个人财产：{self.__money}")

    def make_cake(self):
        print(f"使用【{self.kongfu}】制作汤圆")

    def make_master_cake(self):
        Master.__init__(self)
        Master.make_cake(self)

    def make_school_cake(self):
        School.__init__(self)
        School.make_cake(self)

prentice = Prentice()
# 可以拿到成员变量kongfu
#print(prentice.kongfu)
# 无法拿到私有变量 __money
#print(prentice.__money)
# 无法使用私有方法
#print(prentice.__info_print)
# 如下为公共方法
prentice.make_cake()
prentice.make_master_cake()
prentice.make_school_cake()


# 子类无继承和使用父类的私有方法
#prentice.__store()
# 子类可以使用父类的共有方法
prentice.store2()
# 子类不可使用父类的私有属性
prentice.__key


